package commonClass;

import java.util.Arrays;
import java.util.Comparator;

/**
 * Arrays类方法
 */
public class ArraysMethod01 {

    public static void main(String[] args) {
        /*
            Arrays里包含了一系列静态方法，用于管理或操作数组(排序和搜索)
            1) toString 返回数组的字符串形式
            2) sort 排序(自然排序和定制排序)
         */

        Integer[] integers = {1, 20, 90};

        //可直接使用toString，显示数组
        System.out.println(integers.toString());

        Integer arr[] = {1,-1, 7, 0, 89};
        //演示 sort方法
        /*
            1)可以直接使用冒泡排序 , 也可以直接使用Arrays提供的sort方法排序
            2)因为数组是引用类型，所以通过sort排序后，会直接影响到 实参 arr
            3) sort 重载的，也可以通过传入一个接口 Comparator 实现定制排序
            4)调用 定制排序 时，传入两个参数 (1) 排序的数组 arr
                (2) 实现了Comparator 接口的匿名内部类 , 要求实现 compare方法
         */
        Arrays.sort(arr, new Comparator() {

            @Override
            public int compare(Object o1, Object o2) {
                Integer i1 = (Integer)o1;
                Integer i2 = (Integer)o2;
                return i2 - i1;
            }
        });

        System.out.println("===排序后===");
        System.out.println(Arrays.toString(arr));//

    }
}
